package com.taotaojs.util.excel;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 表格封装对象
 * @author: TaoTaojs
 * @Date: 2019/5/5 16:15
 * @Description:
 * 包括：
 * <li>sheel的名称</li>
 * <li>Map格式附加数据</li>
 * <li>表格具体数据对象列表</li>
 * <li>列名列表</li>
 * <li>多个表头名称</li>
 * @关联类:
 */
@Data
@AllArgsConstructor
@Builder
public class ExcelTableBean<T> {

    ExcelTableBean(){}

    /**
     * 直接表示表格sheel的名称
     */
    private String tableName;

    /**
     * key以titleXXX开头的表示这个表格下的标题（可以兼容多个标题）
     * 其他普通的就是实际的key:value对值
     */
    private Map<String, String> dataMap;

    /**
     * 使用表头与属性映射的功能，完成对象列表映射创建
     * 没有映射到的字段将被添加到data属性中（map）
     */
    private List<T> dataList;
    private List<String> tableHead;
    private Set<String> dataTableHead;

}
